package com.swiftride.service;

import com.baomidou.mybatisplus.extension.service.IService;
import com.swiftride.pojo.domain.Driver;
import com.swiftride.pojo.dto.DriverLocation2GeoDto;
import com.swiftride.pojo.result.DriverTodayInfoResult;
import com.swiftride.pojo.vo.UnsignedDriverVo;

import java.util.List;

/**
 * <p>
 * 司机对象 服务类
 * </p>
 *
 * @author wy
 * @since 2024-07-27
 */
public interface IDriverService extends IService<Driver> {
    /**
     * 司机注册
     *
     * @param openidCode 用于获取openid的code
     * @param phoneCode  用于获取用户手机号的code
     */
    void register(String openidCode, String phoneCode);

    /**
     * 司机上线
     */
    void driverOnline();

    /**
     * 司机下线
     */
    void driverOffline();

    /**
     * 更新司机位置信息到GRO
     *
     * @param driverLocation2GeoDto 司机位置
     */
    void driverLocation2Geo(DriverLocation2GeoDto driverLocation2GeoDto);

    /**
     * 获取未签订合同的司机
     *
     * @return 未签订合同的司机的集合
     */
    List<UnsignedDriverVo> getUnsignedContractList();

    /**
     * 获取司机今日信息
     *
     * @return 司机今日信息
     */
    DriverTodayInfoResult getDriverTodayInfoDto();
}
